# ^ | & >> <<

# 2^5
# 按位异或
# 转换位二进制后，对位判断，如果一致，结果为0，不一致结果为1，最终二进制转换为十进制
# 2     0010
# 5     0101
# 7     0111
print(2 ^ 5)

# 按位或
# 转换位二进制后，对位判断，如果都是0，结果为0，只要有1，结果为1，最终二进制转换为十进制
# 2     0010
# 5     0101
# 3     0111
print(2 | 5)

# 按位与
# 转换位二进制后，对位判断，如果都是1，结果为1，只要有0，结果为0，最终二进制转换为十进制
# 2     0010
# 5     0101
# 3     0000
print(2 & 5)

# 按位右移
# 转换位二进制后，移除右侧指定长度的位数
# 13     1101  >>2 11   3
# 13     1101  >>1 110  6
print(13 >> 1)

# 按位左移
# 转换位二进制后，在最后补充指定长度的位数0
# 13     1101 << 1 11010     26
print(13 << 1)
